The ubiquity of network communications between and among computing devices has resulted in ever increasing amounts of information being exchanged through such communications. For example, as the throughput of network communications has increased, it has become more practical to exchange audio or video entertainment, such as songs, movies, and the like through network communications between computing devices. Traditionally, audio or video entertainment is either obtained from centralized services, such as those that enable users to stream or download professionally produced audio or video entertainment, or it is individually exchanged among multiple users within a small group of such users, such as, for example, within an extended family. Audio or video entertainment that is exchanged among the users of a small group of users typically comprises content that was either generated by, or has special relevance or significance to, that small group of users. For example, home movies can be exchanged among the individuals of an extended family.
Often, the delivery of audio or video entertainment through network communications is performed such that a user of the computing device to which such content is being delivered can hear or view the content in real-time as it is being delivered to the computing device. As will be recognized by those skilled in the art, such delivery is traditionally referred to as “streaming”, and specific formats have been developed within which the audio or video entertainment can be encoded or stored to facilitate the streaming of such content. One such format divides the audio or video entertainment into segments and then encodes each such segment multiple times. For example, one encoding of a segment can preserve high fidelity, while another encoding of the same segment can lose fidelity, but result in a smaller size. Since each segment can define a particular, specific portion of the audio or video entertainment, any one encoding of a particular segment can be interchangeable with any other encoding of that same segment. Thus, when such content is to be streamed, the streaming can switch between different encodings in accordance with the ability of the source computing device to send information quickly enough, and in accordance with the ability of the destination computing device to receive information quickly enough. Because each segment of the audio or video entertainment was already encoded multiple times, and so saved, switching between different encodings can be done quickly and efficiently.
Centralized services that enable a multitude of users to download audio or video entertainment, such as professionally produced audio or video entertainment, including commercially released movies, typically invest substantial resources to ensure that they have access to a sufficient amount of network bandwidth to send information as quickly as their customers can receive such information. In such cases, it is often the receiving computing devices' ability to receive content that limits the speed with which such audio or video entertainment is delivered to a user or customer of such a centralized service.
By contrast, when users share audio or video entertainment amongst themselves, such content is typically being copied directly from one user's computing device to another user's computing device and, in such cases, the delivery of such audio or video entertainment can be substantially hampered by the network connectivity of the users' computing devices. For example, as will be known by those skilled in the art, users' computing devices typically send and receive network communications through a network service provider that can, and often does, limit the speed with which a user's computing device can send information. Consequently, while a user may be able to download a commercially released movie from a centralized service within a reasonable amount of time, that same user may have difficulty in efficiently downloading a home movie from a family member's computing device if a network service provider limits the speed with which such a family member's computing device can transmit information.